package com.xiaolin.designmode.chain_of_responsibility;

/**
 * @ClassName Handler
 * @Description 抽象处理者
 * @Detail 责任链模式的定义：为了避免请求发送者与多个请求处理者耦合在一起，将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链；
 *          当有请求发生时，可将请求沿着这条链传递，直到有对象处理它为止。
 *              步骤：
 *                  1、创建抽象处理者者
 *                  2、创建若干具体处理者
 *                  3、测试
 *              总结：
 *                  1、角色
 *                      1、抽象处理者
 *                      2、具体处理者
 *                      3、测试客户端
 *                  2、使用范围：
 *                      一个请求有多个对象可以处理，但每个对象的处理条件或权限不同。例如，公司员工请假，可批假的领导有部门负责人、副总经理、总经理等，
 *                      但每个领导能批准的天数不同，员工必须根据自己要请假的天数去找不同的领导签名，也就是说员工必须记住每个领导的姓名、电话和地址等信息，
 *                      这增加了难度。这样的例子还有很多，如找领导出差报销、生活中的“击鼓传花”游戏等。
 * @Author MyPC
 * @Date 2020/11/6
 * @Version 1.0
 */
public abstract class Handler {
    private Handler next;

    public void setNext(Handler next) {
        this.next = next;
    }

    public Handler getNext() {
        return next;
    }

    public abstract void handleRequest(String req);
}
